# parameters bash scripts

https://habr.com/ru/company/ruvds/blog/326328/

## Использование стандартных ключей

-a Вывести все объекты.
-c Произвести подсчёт.
-d Указать директорию.
-e Развернуть объект.
-f Указать файл, из которого нужно прочитать данные.
-h Вывести справку по команде.
-i Игнорировать регистр символов.
-l Выполнить полноформатный вывод данных.
-n Использовать неинтерактивный (пакетный) режим.
-o Позволяет указать файл, в который нужно перенаправить вывод.
-q Выполнить скрипт в quiet-режиме.
-r Обрабатывать папки и файлы рекурсивно.
-s Выполнить скрипт в silent-режиме.
-v Выполнить многословный вывод.
-x Исключить объект.
-y Ответить «yes» на все вопросы.

## all params 

$# — общее количество параметров переданных скрипту
$* — все аргументы переданыне скрипту(выводятся в строку)
$@ — тоже самое, что и предыдущий, но параметры выводятся в столбик
$! — PID последнего запущенного в фоне процесса
$$ — PID самого скрипта
$- Список флагов, переданных сценарию
$_ Специальная переменная, содержит последний аргумент предыдущей команды
$? Код возврата команды, функции или скрипта 


## key params
### shift using

    $ ./script_param.sh -a param_a -b param_b -c param_c

    #!/bin/bash
    echo
    while [ -n "$1" ]
    do
    case "$1" in
    -a) echo "Found the -a option"; this_param_a=$2 ;;
    -b) echo "Found the -b option"; this_param_b=$2 ;;
    -c) echo "Found the -c option"; this_param_c=$2 ;;
    *) echo "$1 is not an option"; ARG1=$1 ;;
    esac
    shift
    done

    echo $this_param_a $this_param_b $this_param_c
